import java.util.Arrays;

//<T>:代表当前类是泛型类
//指定当前容器要持有什么类型的对象，让编译器去检查
//<T extends Number>,泛型上界，T一定是Number或者Number的子类
class MyArrays<T>{
  public Object[] arrays = new Object[10];
//    public T[] arrays = new T[10];    不允许 实例化一个泛型数组
    //这样写也不好
//   public Object[] arrays = (T[])new Object[10];
    public void setArrays(int pos,T o){
        arrays[pos] = o;
    }
    public T getArrays(int pos){
        return (T)arrays[pos];
    }
    public T[] getArrays(){//最好用Object类型的对象接受
        return (T[]) arrays;
    }
}
public class Test2 {
    public static void main(String[] args) {
        MyArrays myArrays = new MyArrays();
        System.out.println(Arrays.toString((myArrays.getArrays())));
    }
    public static void main1(String[] args) {
        MyArrays<String> myArrays = new MyArrays<>();//<>中只能是引用类型，不能是基本类型
        myArrays.setArrays(0,"str");
        System.out.println(myArrays.getArrays(0));
//        myArrays.setArrays(1,666); 这里不能放整形了
        MyArrays<Integer>myArrays1 = new MyArrays<>();
        myArrays1.setArrays(0,5);
        myArrays1.getArrays(0);
    }

}
